package com.googlecode.hmvc4gwt.example.hmvcblog.service.services.blog.entry.comment;

import java.util.List;

import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.BlogEntryIdDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.BlogEntryCommentDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.BlogEntryCommentEditDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.BlogEntryCommentNewDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.BlogEntryCommentRemoveDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.exceptions.BlogEntryCommentAuthorNameEmptyException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.exceptions.BlogEntryCommentNotFoundException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.comment.exceptions.BlogEntryCommentTextEmptyException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.exceptions.BlogEntryNotFoundException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.exceptions.NotBlogOwnerException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.user.exception.NotLoggedInException;


public interface IBlogEntryCommentService {

	public void addBlogEntryComment(BlogEntryCommentNewDTO commentNewDTO)
			throws BlogEntryCommentTextEmptyException,
			BlogEntryCommentAuthorNameEmptyException,
			BlogEntryNotFoundException;

	public void editBlogEntryComment(BlogEntryCommentEditDTO commentEditDTO)
			throws BlogEntryCommentTextEmptyException,
			BlogEntryCommentAuthorNameEmptyException,
			BlogEntryNotFoundException, BlogEntryCommentNotFoundException,
			NotLoggedInException, NotBlogOwnerException;

	public List<BlogEntryCommentDTO> getListBlogEntryCommentDTO(
			BlogEntryIdDTO blogEntryIdDTO) throws BlogEntryNotFoundException;

	public void removeBlogEntryComment(
			BlogEntryCommentRemoveDTO commentRemoveDTO)
			throws NotLoggedInException, NotBlogOwnerException,
			BlogEntryCommentNotFoundException;

}
